#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>

int main(int argc,char*argv[])
{
	int fd[2];
	int ret = pipe(fd);
	if(ret<0)
	{
		perror("pipe error");
		exit(-1);
	}
	//fork子进程
	int pid = fork();
	if(pid<0)
	{
		perror("fork error");
		exit(-1);
	}
	else if(pid > 0)
	{
		//关闭不需要的一端
		//父进程写数据，关闭读端
		close(fd[0]);
		write(fd[1],"hello world",strlen("hello world"));
		wait(NULL);
	}
	else
	{
		//关闭写端
		close(fd[1]);
		char buf[64];
		memset(buf,0,64);
		int len = read(fd[0],buf,64);
		printf("read len len=[%d],buf=[%s]\n",len,buf);
	}
	return 0;
}
